查看原文
其他

国外疫情怎么看?——实时新闻获真知

爬虫俱乐部 Stata and Python数据分析 2022-03-15

本文作者:孙晓玲

文字编辑:张馨月

技术总编:张计宝

导读



国内疫情攻坚战已经过去3个月了,中国人民团结一心,在这场战役中取得伟大胜利,这一切都离不开无数抗疫英雄们的“英勇救疫”,各地复工、复学也指日可待。然而,新冠疫情还在牵动着全球人民的心,近日,国外疫情的大爆发频频登上热搜榜单、居高不下。“道不远人,人无异国”,在疫情中取得胜利的中国向世界各国发出援助,展现大国情怀。截止北京时间20203291213分,国外新型冠状病毒肺炎累计确诊583347例。小编抓取了“百度疫情实时数据报告”中九大“热门”国家(伊朗、韩国、日本、西班牙、英国、意大利、德国、法国和美国)的疫情新闻报道内容,对新闻报道用Stata软件进行了文本分析。

相关代码和数据已放至公众号后台,进入公众号后

回复“疫情新闻”即可获取数据(数据来源网站:

https://voice.baidu.com/act/newpneumonia/newpneumonia/?from=osari_pc_1#tab4


读  取  数  据 



将获取的数据读入Stata中,查看数据概貌如图所示,可以看到数据中有如“编辑:某某某”、“来源”类似的字样,为防止其对后续分析结果产生影响,将这样的行删除。

clear allcd D:\infix strL v 1-1000 using 国外疫情报道.txt,cleardrop if ustrregexm(v, "来源|编辑") 

分 词 实 现 



Stata16中调用Python进行数据处理的新功能使众多用户爱不释手,我们的往期推文中也介绍了很多这方面的知识,感兴趣的读者朋友可以翻阅,不做赘述。我们首先调用Python中的jieba模块对“国外疫情报道.txt”文档进行分词,这里使用的jieba分词的精确模式,因为这种模式可以对句子进行精确切分并列出不重复的所有词。分词完毕后将结果写入“分词结果.txt”文档中,并使用shellout命令打开分词结果文档。

clear allpythonimport jiebaglobnews=[]with open(r"D:\国外疫情报道.txt",encoding="utf8") as f: for i in f.readlines(): str=i globnews.append(str)with open("分词结果.txt","w",encoding="utf8") as f2: for unit in globnews: seg_list = jieba.cut(unit) for word in seg_list: f2.write(word+"\n")endshellout "分词结果.txt"


结 果 处 理 



从结果中可以发现分词后仍然有一些令人不满意的地方,例如标点符号、语气助词、一些我们不需要的单字词等,因此这里需要对停用词进行过滤,去除分词结果中的噪声,为后续分析做铺垫。停用词可以直接在网上下载并根据自己的分析需求进行修改。具体操作如下:

首先读入分词结果,删除单字、删除缺失值,再删除停用词。

clearinfix strL v 1-12000 using 分词结果.txt,clearrename v keyworddrop if ustrlen(keyword) == 1 // 删除单字drop if keyword =="" //删除缺失值compress
keep keywordpreserveimport delimited using 停用词表.txt, clear encoding("utf-8") varname(nonames)outsheet using 停用词表.txt, replace nonames noquotelevelsof v1, local(keyword)restoreforeach word in `keyword' { drop if keyword == "`word'" //删除停用词}

去除这些干扰词后,对分词的结果进行词频统计。使用duplicates drop命令删除重复值,将词频统计结果按照降序排列,列出词频前10的词。

bysort keyword: gen freq = _Nduplicates drop //去除重复值gsort -freqlist in 1/10

从词频前10的词可以看出,“新冠”、“疫情”出现次数分别为第一、第二,印证新闻报道的主题;“病例”、“确诊”、“死亡”、“累计”也位列其中,可以看出病例的确诊、死亡是新闻报告的重点报道对象和人们关注的焦点;“伊朗”、“美国”、“意大利”这三个国家由于疫情较为严重,也受到了广泛的关注。

四、绘制词云图

得到了满意的分词结果后,便可使用wordcloud绘制词云图并用shellout命令打开。

wordcloud keyword freq using 词云.html, replace size(15 80) range(3840 2160)shellout 词云.html

从词云图可以看出国外疫情仍处于爆发时期,确诊、死亡信息频频报道。“伊朗”、“美国”、“意大利”、“德国”形式较为严峻,“隔离”、“防控”攻坚战还需继续努力。从图中的数字信息也可以看到,外国疫情大爆发从3月中下旬开始,这个时期的新闻报道增多。疫情无情,人间有爱,一场疫情下全世界的人民惺惺相惜,携手共渡难关,期待疫情早日结束,迎来美丽明天!








对我们的推文累计打赏超过1000元,我们即可给您开具发票,发票类别为“咨询费”。用心做事,不负您的支持!
往期推文推荐
基于贝叶斯定理的算法——朴素贝叶斯分类
中国知网爬虫(CNKI) 批量下载PDF格式论文
sencode命令介绍
Ftools命令组之fisid命令和fsort命令介绍
“抽丝剥茧”,层层下分——机器学习基本算法之决策树

爬取东方财富网当日股票交易情况

stata调用python爬取时间数据——借他山之石以攻玉

全国31省GDP排行强势登场!
接力《发哨子的人》Stata版
批量实现WORD转PDF

Stata有问必答环节

我听到了企业的哀鸣
“物以类聚”、“近朱者赤”——机器学习初探之KNN
SFI:Stata与Python的数据交互手册(二)

从流调数据中寻找感染真相

熟悉又陌生的reshape

NBA球员薪资分析——基于随机森林算法(二)

NBA球员薪资分析——基于随机森林算法(一)

高亮输出之唐诗作者

关于我们



微信公众号“Stata and Python数据分析”分享实用的stata、python等软件的数据处理知识,欢迎转载、打赏。我们是由李春涛教授领导下的研究生及本科生组成的大数据处理和分析团队。

此外,欢迎大家踊跃投稿,介绍一些关于stata和python的数据处理和分析技巧。
投稿邮箱:statatraining@163.com
投稿要求:
1)必须原创,禁止抄袭;
2)必须准确,详细,有例子,有截图;
注意事项:
1)所有投稿都会经过本公众号运营团队成员的审核,审核通过才可录用,一经录用,会在该推文里为作者署名,并有赏金分成。
2)邮件请注明投稿,邮件名称为“投稿+推文名称”。
3)应广大读者要求,现开通有偿问答服务,如果大家遇到有关数据处理、分析等问题,可以在公众号中提出,只需支付少量赏金,我们会在后期的推文里给予解答。


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存